﻿package zf.ui
{
	/**
 	 * FourMouseMove 类,以实现四方向滑动过程测算处理，适用于触摸屏滑动事件处理。 
	 * @author mike.zhang
	 * @langversion 3.0 
	 * @playerversion Flash 9 
	 */
	public class FourMouseMove extends MouseMove
	{
		/**
		 * 上方向运动函数 
		 */
		public var up:Function;
		/**
		 * 下方向运动函数 
		 */
		public var down:Function;
		/**
		 * 左方向运动函数 
		 */
		public var left:Function;
		/**
		 * 右方向运动函数 
		 */
		public var right:Function;
		
		/**
		 * 是否以位置测算,如果以位置测算，可能同时在垂直和水平方向上有运动量，否则只有其中一个 
		 */
		public var across:Boolean=false;
		public function FourMouseMove():void
		{
			super();
			up=new Function;
			down=new Function;
			left=new Function;
			right=new Function;
		}
		
		override protected function createEvent(dx:Number,dy:Number):void
		{
			super.createEvent(dx,dy);
			if (across)
			{
				if (Math.abs (dx) > minUint)
				{
					if (dx > 0)
					{
						right (dx);
					}
					else
					{
						left (dx);
					}
				}
				if (Math.abs (dy) > minUint)
				{
					if (dy > 0)
					{
						down (dy);
					}
					else
					{
						up (dy);
					}
				}
			}
			else
			{
				if (Math.abs (dx) > Math.abs (dy))
				{
					if (dx > 0)
					{
						right (dx);
					}
					else
					{
						left (dx);
					}
				}
				else
				{
					if (dy > 0)
					{
						down (dy);
					}
					else
					{
						up (dy);
					}
				}
			}
		}
	}
}